package com.woniuxy.mapper;

import com.woniuxy.entity.Stu;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author 作者
 * @create 2025-11-19 17:14
 */
public interface StuMapper {

    void insert(Stu stu);
    void update(Stu stu);
    void deleteBySid(int sid);
    Stu selectBySid(int sid);
    List<Stu> selectAll();
    //模糊查询
    List<Stu> selectBySname(String sname);
    //查询名字包含a，年龄>12岁的学生
    List<Stu> selectByCondition1(Stu stu);
    //多个参数，必须在参数前面添加@Param("自定义名字")
    //sql语句中引用参数的值，使用注解中的自定义名字，不是形参的名字
    //建议，自定义名字和形参名字一样
    List<Stu> selectByCondition2(@Param("sname") String sname,
                                 @Param("age") int age);
    //一个参数也可以使用注解,不建议添加
    List<Stu> selectByCondition3(@Param("stu") Stu stu);
    List<Stu> selectByCondition4(@Param("stu")Stu stu,
                                 @Param("age")int age);

    //可选三个条件，sname,pwd,age
    List<Stu> selectDynamicSql01(Stu stu);
    List<Stu> selectDynamicSql02(Stu stu);
    List<Stu> selectDynamicSql03(Stu stu);
    //SELECT * FROM stu WHERE sid IN(1,3,5)
    List<Stu> selectDynamicSql04(int[] sids);
    List<Stu> selectDynamicSql05(List<Integer> sids);
    // <foreach collection="参数名"，必须加参数注解
    List<Stu> selectDynamicSql06(@Param("sids") List<Integer> sids);
    //批量添加  insert into stu values(),(),()
    void selectDynamicSql07(List<Stu> stus);

    List<Stu> selectConditionAge(int age);
}
